/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package ru.ssau.berlin.ejb.facade;

import java.util.List;
import javax.ejb.Local;
import ru.ssau.berlin.entity.Event;
import ru.ssau.berlin.entity.EventAttribute;
import ru.ssau.berlin.entity.EventParameter;
import ru.ssau.berlin.entity.EventType;
import ru.ssau.berlin.entity.Person;
import ru.ssau.berlin.entity.PersonGroup;

/**
 *
 * @author Caesar
 */
@Local
public interface EventFacadeLocal {

    void create(Event event);

    void edit(Event event);

    void remove(Event event);

    Event find(long id);

    List<Event> findAll();

    List<Event> findByName(String name);

    List<Event> findInstructorSchedule(Person instructor);

    List<Event> findGroupSchedule(PersonGroup group);

    List<Event> findStudentSchedule(Person student, String day);

    EventType findEventType(long id);

    EventType findEventType(String name);

    List<EventType> findEventTypes();

    void createType(EventType type);

    void editType(EventType type);

    void removeType(EventType type);

    void createAttribute(EventAttribute attr);

    void editAttribute(EventAttribute attr);

    void removeAttribute(EventAttribute attr);

    EventAttribute findEventAttribute(long id);

    EventAttribute findEventAttribute(String name);

    List<EventAttribute> findEventAttributes();

    void createParameter(EventParameter parameter);

    EventParameter findParameter(long id);

    void removeParameter(EventParameter parameter);

}
